﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RayDen.Library.Core;
using RayDen.Library.Core.Primitives;

namespace RayDen.Library.Components.Color.Types
{
    /// <summary>
    /// Stratified Wavelength Cluster 
    /// </summary>
    public class SWCRadiance : BaseColorType<SWCRadiance>
    {
        public RegularSPD spd;

        public override SWCRadiance Value
        {
            get { return this; }
        }

        public override float Sample(float lambda)
        {
            throw new NotImplementedException();
        }

        public override bool IsBlack()
        {
            return spd.Y() < MathLab.Epsilon;
        }

        public override RgbSpectrum ToXyz()
        {
            throw new NotImplementedException();
        }

        public override void ToZero()
        {
            throw new NotImplementedException();
        }

        public override void ToUnit()
        {
            throw new NotImplementedException();
        }

        public override void TransformToRgb(out RgbSpectrum result)
        {
            throw new NotImplementedException();
        }

        protected override BaseColorType<SWCRadiance> Add(BaseColorType<SWCRadiance> v)
        {
            throw new NotImplementedException();
        }

        protected override BaseColorType<SWCRadiance> Mul(BaseColorType<SWCRadiance> v)
        {
            throw new NotImplementedException();
        }

        protected override BaseColorType<SWCRadiance> AddFloat(float v)
        {
            throw new NotImplementedException();
        }

        protected override BaseColorType<SWCRadiance> MulFloat(float v)
        {
            throw new NotImplementedException();
        }

        public override IColorType CloneValue()
        {
            throw new NotImplementedException();
        }
    }
}
